Like all good technologies, IP is now aged and badly needs a major upgrade. Today, IP is used for purposes far more than it was originally intended. One major set of problems has been known as IP rigidity.
The first IP rigidity problem is rooted in IP's failure to distinguish between location identity and host identity, called host-location confusion (HLC). In IP, a single IP address is used to identify both a host and its point of attachment. This design assumes a host never moves; a host is uniquely identified by its permanent point of attachment. However, once a host is to change its attachment point, connections to the host will break. This problem cannot be understated; today, IP addresses do change all the time.
Changes in IP address arise from two possible sources: mobility and NAT.
As a host moves to a new location, the IP address for the host must update accordingly to route packets correctly. In IP, a connection is identified by a tetrad (4-tuple): source IP address, source port number, destination IP address, and destination port number. Hereafter, an IP address-port pair will simply be called an AP; a source AP will be called a SAP, and a destination AP will be called a DAP. Thus, a tetrad is an ordered pair formed by a SAP and a DAP.
An AP is a route identifier. An IP address tells a router where to forward an IP packet, and a port number tells a network stack which socket to forward a packet. Therefore, in IP, a connection ID is also a route ID. If one endpoint moves, while the connection remains alive, the route to connect the endpoints has to change. Then a dilemma arises: the connection ID must remain unchanged while the route ID has to change; but they are tied at the hip! This is the classic mobility problem that has plagued the IP world for many years.
Next, a host behind a NAT is given a private IP address. In crossing a NAT, the SAP (for private-to-public traversal) or DAP (for public-to-private traversal) of a packet is modified by the NAT. This creates a blindness problem: a host cannot recognize its source or destination behind a NAT. Since a NAT is often integrated with a firewall, more problems are present. Packets are subject to deep packet inspection and filtering executed by a firewall. Therefore, packets may fail to survive a NAT/firewall traversal. Hereafter, a NAT is assumed to be a NAT-firewall combination.
Today, due to compelling reasons, NAT is deemed to be absolutely necessary; massive NAT deployments will continue into foreseeable future. The problems resulted from NAT have also plagued the IP world continuously. These problems are collectively known as the NAT traversal (NT) problem.
The next IP rigidity problem is rooted in IP's inability to explicitly identify a path, called PIA (path identification ambiguity). In IP, paths are implicitly identified and packets in the same connection travel in a single path. These and other rigidities cause many traffic engineering (TE) problems. For example, the classic fish problem in routing has never been solved elegantly. To solve this and other TE problems, a simple solution is to send packets in a single connection in multiple paths, which is impossible in IP. Without explicit path identification, IP routing is inflexible and will remain problematic.
Multi-path routing in the same connection has an added benefit. In a converged network formed by multiple communication channels, a host should consolidate all channels within a single IP connection, to maximize bandwidth usage. For example, a smart phone with dual antennas for Wi-Fi and 3G should utilize both bandwidths for a single application. Path rigidity problems will be referred to as the path-identity problem.
In sum, there are two root causes for IP rigidity, HLC and PIA. They together cause the mobility problem, the NT problem, and the path-identity problem. The purpose of the present invention is to solve these rigidity problems by attacking the root causes.
As their root causes are intertwined, the rigidity problems often appear concurrently. They should be solved simultaneously in one unified framework; that is an object of the present invention.